const mysql = require('mysql')

const conn = mysql.createConnection({
    host: '127.0.0.1',
    user: 'root',
    password: 'root',
    database: 'stu_system',
    port: 3306
})


function Query(sql) {
    //结合Promise函数。

    return new Promise((resolve, reject) => {
         conn.query(sql, (err, result) => {//只要sql正确 ，那么err为null，而result不是undefined（ [] {} ）
             resolve({ err, result })
         })
        // conn.query(sql, (...arg) => {//只要sql正确 ，那么err为null，而result不是undefined（ [] {} ）
        //     resolve([ ...arg ])  //query的回调中的参数可能会有很多，所以...是一种很好的解决方案。
        // })
    })
}

module.exports = Query

//Query方法封装完毕
//Query( 合法的sql语句 ) 
//=> 返回一个promise对象 { err,result }  如果没有错误则err为null且result属性中是正确的结果
// 如果有错误 err就是具体的错误消息 ，result为undefined

//具体Query方法的小Demo，以后应该这样用我的Query方法
// 具体的业务代码 async函数
// async function fn() { //这个fn什么时候调用根据自己的业务
//     let sql = `
//         SELECT * FROM student WHERE id=2
//     `
//    let { err,result } = await Query( sql ) //Query返回一个promise对象，await等待异步的结果
//    console.log( err,'err' );
//    console.log( result,'result' );
// }

// fn()